// 放置全局指令
// 使用自定义指令来完成对dom元素的隐藏和显示
import store from '@/store'

// 函数定义法写插件 -> 函数本身会被当做install方法自动执行
const directivePlugin = (Vue) => {
  Vue.directive('checkBtn', {
    inserted(el, binding) {
      // el: 指令绑定的那个元素对象 dom
      // binding.value:  指令等于号后面绑定的表达式的值  v-if="xxx"
      // 业务实现逻辑：判断当前按钮自身的标识是否在后端返回的points数组中找到，如果有就显示，没有就隐藏
      // 后端返回的points数组在vuex中的state数据中
      const points = store.state.user.userInfo.roles.points
      if (!points.includes(binding.value)) {
        // 把当前dom移除
        el.remove()
      }
    }
  })
}

export default directivePlugin
